home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / Clueless.swf / scripts / Forms / DressupForm.as < prev    next >
Encoding:
Text File  |  2011-10-17  |  39.1 KB  |  1,193 lines

  1. package Forms
  2. {
  3.    import Common.SoundManager;
  4.    import caurina.transitions.Tweener;
  5.    import flash.display.*;
  6.    import flash.events.*;
  7.    import flash.geom.ColorTransform;
  8.    import flash.text.*;
  9.    import flash.utils.*;
  10.    
  11.    [Embed(source="/_assets/assets.swf", symbol="Forms.DressupForm")]
  12.    public class DressupForm extends CluelessBaseForm
  13.    {
  14.       
  15.       public static const TIMER_WARNING_MILLIS:Number = 20000;
  16.        
  17.       
  18.       internal var _aFiltersTimerOver:Array;
  19.       
  20.       public var _tfScore:TextField;
  21.       
  22.       public var _mcBoyfriend0:MCThumbnail;
  23.       
  24.       public var _mcBoyfriend2:MCThumbnail;
  25.       
  26.       public var _tfLevelName:TextField;
  27.       
  28.       public var _mcTimer1:TimerBarSmall;
  29.       
  30.       public var _mcTimer2:TimerBarSmall;
  31.       
  32.       public var _mcBoyfriend1:MCThumbnail;
  33.       
  34.       public var _mcTimer0:TimerBarSmall;
  35.       
  36.       protected var _bmModel:Bitmap;
  37.       
  38.       protected var _dressupmodelSubmitted:DressupModel = null;
  39.       
  40.       public var _mcModelBackground:MovieClip;
  41.       
  42.       internal var _bFirstFillSlots:Boolean = true;
  43.       
  44.       protected var nLevelScore:int;
  45.       
  46.       public var _mcPose0:MovieClip;
  47.       
  48.       public var _mcPose2:MovieClip;
  49.       
  50.       public var _tfTotalOutfits:TextField;
  51.       
  52.       public var shoe1:ClothingSlot;
  53.       
  54.       public var shoe2:ClothingSlot;
  55.       
  56.       public var _tfShuffle:TextField;
  57.       
  58.       public var _mcPose1:MovieClip;
  59.       
  60.       public var _ScoreLimitHint:TextField;
  61.       
  62.       public var shoe4:ClothingSlot;
  63.       
  64.       public const MIN_TIME:int = 1000;
  65.       
  66.       internal var _aFiltersTimerOut:Array;
  67.       
  68.       protected var _apowerupslots:Array;
  69.       
  70.       public var shoe3:ClothingSlot;
  71.       
  72.       public var _tfFiguresLeft:TextField;
  73.       
  74.       public var _tfFinishRound:TextField;
  75.       
  76.       protected var _aModels:Array;
  77.       
  78.       public var _bModelOK0:SimpleButton;
  79.       
  80.       public var _bModelOK2:SimpleButton;
  81.       
  82.       public var _tfFreeze:TextField;
  83.       
  84.       public var _bHint:SimpleButton;
  85.       
  86.       public var _bModelOK1:SimpleButton;
  87.       
  88.       public var _tfOutfitsLeft:TextField;
  89.       
  90.       public var _LimitbarFull:MovieClip;
  91.       
  92.       public var _mcPortrait2:MCThumbnail;
  93.       
  94.       public var _model1:DressupModel;
  95.       
  96.       public var _model2:DressupModel;
  97.       
  98.       public var _tfTitle0:TextField;
  99.       
  100.       public var _model0:DressupModel;
  101.       
  102.       public var _tfTitle2:TextField;
  103.       
  104.       public var accessory1:ClothingSlot;
  105.       
  106.       public var _mcPortrait0:MCThumbnail;
  107.       
  108.       public var _mcPortrait1:MCThumbnail;
  109.       
  110.       public var bottom4:ClothingSlot;
  111.       
  112.       public var _powerupslot0:PowerupSlot;
  113.       
  114.       public var _powerupslot2:PowerupSlot;
  115.       
  116.       public var bottom1:ClothingSlot;
  117.       
  118.       public var bottom2:ClothingSlot;
  119.       
  120.       public var bottom3:ClothingSlot;
  121.       
  122.       public var accessory2:ClothingSlot;
  123.       
  124.       public var _powerupslot1:PowerupSlot;
  125.       
  126.       public var _powerupslot3:PowerupSlot;
  127.       
  128.       public var _powerupslot4:PowerupSlot;
  129.       
  130.       public var top2:ClothingSlot;
  131.       
  132.       public var top4:ClothingSlot;
  133.       
  134.       protected var _aSlots:Array;
  135.       
  136.       public var _tfTitle1:TextField;
  137.       
  138.       public var top3:ClothingSlot;
  139.       
  140.       internal var _aHint:Array;
  141.       
  142.       public var _hint0:PartnerHintText;
  143.       
  144.       public var top1:ClothingSlot;
  145.       
  146.       public var _Popup_mc:MovieClip;
  147.       
  148.       protected var _iNumHintsPresented:* = 0;
  149.       
  150.       public var _hint1:PartnerHintText;
  151.       
  152.       public var _bPose0:SimpleButton;
  153.       
  154.       public var _bPose1:SimpleButton;
  155.       
  156.       public var _bPose2:SimpleButton;
  157.       
  158.       public var _ScoreBar:ScoreLimitBar;
  159.       
  160.       public var _hint2:PartnerHintText;
  161.       
  162.       public var _rankdiamonds:MovieClip;
  163.       
  164.       public var _yesno_mc:MovieClip;
  165.       
  166.       public var _mcModelLayer:MovieClip;
  167.       
  168.       public var _mcBackgroundLayer:MovieClip;
  169.       
  170.       protected var _bmBackground:Bitmap;
  171.       
  172.       protected var _dressupengine:DressupEngine;
  173.       
  174.       protected var _dressuplevelinfo:DressupLevelInfo;
  175.       
  176.       public var _bPause:SimpleButton;
  177.       
  178.       public var _bMenu:SimpleButton;
  179.       
  180.       internal var _stage:Stage;
  181.       
  182.       public function DressupForm()
  183.       {
  184.          var _loc1_:int = 0;
  185.          var _loc2_:PowerupSlot = null;
  186.          var _loc3_:DressupModel = null;
  187.          var _loc4_:SimpleButton = null;
  188.          var _loc5_:SimpleButton = null;
  189.          _iNumHintsPresented = 0;
  190.          _dressupmodelSubmitted = null;
  191.          _bFirstFillSlots = true;
  192.          _aHint = new Array();
  193.          super();
  194.          Music = "BossMusic";
  195.          _aFiltersTimerOver = _mcTimer1.filters;
  196.          _aFiltersTimerOut = _mcTimer0.filters;
  197.          _mcTimer1.filters = _aFiltersTimerOut;
  198.          installMouseOverSound(_bPause);
  199.          _tfTitle0.mouseEnabled = false;
  200.          _tfTitle1.mouseEnabled = false;
  201.          _tfTitle2.mouseEnabled = false;
  202.          _tfOutfitsLeft.alpha = 0;
  203.          _loc1_ = 0;
  204.          while(_loc1_ < 3)
  205.          {
  206.             getChildByName("_hint" + _loc1_).visible = false;
  207.             _loc1_++;
  208.          }
  209.          _apowerupslots = PowerupSlot.extractFromStage(this);
  210.          for each(_loc2_ in _apowerupslots)
  211.          {
  212.             _loc2_.addEventListener(MouseEvent.CLICK,onPowerupClicked,false,0,true);
  213.          }
  214.          _Popup_mc.visible = false;
  215.          _yesno_mc.visible = false;
  216.          _Popup_mc._bClose.addEventListener(MouseEvent.CLICK,OnPopupClose,false,0,true);
  217.          _yesno_mc._btnYes.addEventListener(MouseEvent.CLICK,onMenu,false,0,true);
  218.          _yesno_mc._btnNo.addEventListener(MouseEvent.CLICK,OnHideExit,false,0,true);
  219.          _tfShuffle.visible = Profile.Cheat;
  220.          _tfFreeze.visible = Profile.Cheat;
  221.          _tfFinishRound.visible = Profile.Cheat;
  222.          _tfShuffle.addEventListener(MouseEvent.CLICK,onCheatShuffle,false,0,true);
  223.          _tfFreeze.addEventListener(MouseEvent.CLICK,onCheatTime,false,0,true);
  224.          _tfFinishRound.addEventListener(MouseEvent.CLICK,onFinishRound,false,0,true);
  225.          addEventListener(Event.DEACTIVATE,onFocusOut,false,0,true);
  226.          _aModels = Model.extractFromStage(this);
  227.          _loc1_ = 0;
  228.          while(_loc1_ < _aModels.length)
  229.          {
  230.             _loc3_ = _aModels[_loc1_] as DressupModel;
  231.             (_loc4_ = getChildByName("_bModelOK" + _loc1_) as SimpleButton).visible = false;
  232.             _loc4_.addEventListener(MouseEvent.CLICK,onSubmitModel,false,0,true);
  233.             (_loc5_ = getChildByName("_bPose" + _loc1_) as SimpleButton).addEventListener(MouseEvent.CLICK,onPose,false,0,true);
  234.             _loc3_.OKButton = _loc4_;
  235.             _loc3_.Title = getChildByName("_tfTitle" + _loc1_) as TextField;
  236.             _loc3_.ModelTimer = new TimerTracker();
  237.             _loc3_.ModelTimerBar = getChildByName("_mcTimer" + _loc1_) as TimerBarSmall;
  238.             _loc3_.ModelTimerBar.addEventListener(MouseEvent.CLICK,onThemeClicked,false,0,true);
  239.             _loc3_.ModelTimerBar.addEventListener(MouseEvent.MOUSE_OVER,onThemeOver,false,0,true);
  240.             _loc3_.ModelTimerBar.addEventListener(MouseEvent.MOUSE_OUT,onThemeOut,false,0,true);
  241.             _loc3_.PoseButton = _loc5_;
  242.             _loc3_.Portrait = getChildByName("_mcPortrait" + _loc1_) as MovieClip;
  243.             _loc3_.Portrait.addEventListener(MouseEvent.CLICK,onProfileClicked,false,0,true);
  244.             _loc3_.addEventListener(ModelEvent.MODEL_PART_CHANGED,onModelPartChanged,false,0,true);
  245.             _loc1_++;
  246.          }
  247.          addEventListener(Event.ADDED_TO_STAGE,onAddedToStage,false,0,true);
  248.          addEventListener(Event.REMOVED_FROM_STAGE,onRemovedFromStage,false,0,true);
  249.          _bHint.addEventListener(MouseEvent.CLICK,onHints,false,0,true);
  250.          _bPause.addEventListener(MouseEvent.CLICK,onPause,false,0,true);
  251.          addEventListener(Event.ENTER_FRAME,onEnterFrame,false,0,true);
  252.       }
  253.       
  254.       protected function onProfileClicked(param1:MouseEvent) : void
  255.       {
  256.          var _loc2_:DressupModel = null;
  257.          for each(_loc2_ in _aModels)
  258.          {
  259.             if(_loc2_.Portrait == param1.target)
  260.             {
  261.                gotoNextTutorialFrame();
  262.                if(_Popup_mc.visible == false || _Popup_mc._tBfName.text != _loc2_.ModelTheme.ThemePartner.Name.toUpperCase())
  263.                {
  264.                   _Popup_mc._tfAttributes.text = Database.getInstance().getPartnerAttributes(_loc2_.PartnerName);
  265.                   _Popup_mc._tBfName.text = _loc2_.ModelTheme.ThemePartner.Name.toUpperCase();
  266.                   _Popup_mc._tBfImages.gotoAndStop(_loc2_.PartnerName);
  267.                   _Popup_mc.visible = true;
  268.                   SoundManager.getInstance().playSound("CheckBoyfriendRequirementsSound");
  269.                }
  270.                else
  271.                {
  272.                   _Popup_mc.visible = false;
  273.                }
  274.             }
  275.          }
  276.       }
  277.       
  278.       protected function OnPopupClose(param1:MouseEvent) : void
  279.       {
  280.          if(_Popup_mc.visible)
  281.          {
  282.             _Popup_mc.visible = false;
  283.             gotoNextTutorialFrame();
  284.          }
  285.       }
  286.       
  287.       public function dropHint(param1:DressupModel) : void
  288.       {
  289.          var _loc2_:String = null;
  290.          var _loc3_:MovieClip = null;
  291.          var _loc4_:int = 0;
  292.          var _loc5_:Number = NaN;
  293.          var _loc6_:String = null;
  294.          var _loc7_:Array = null;
  295.          var _loc8_:PartnerHintText = null;
  296.          SoundManager.getInstance().playSound("TimeLowWarningSound");
  297.          _loc2_ = "_hint" + param1.Portrait.name.substring(param1.Portrait.name.length - 1);
  298.          _loc3_ = getChildByName(_loc2_) as MovieClip;
  299.          _loc5_ = _loc3_.y;
  300.          _loc6_ = param1.Portrait.currentLabel;
  301.          _loc7_ = Database.getInstance().getPartner(_loc6_).Attributes;
  302.          _loc4_ = 0;
  303.          while(_loc4_ < _loc7_.length)
  304.          {
  305.             (_loc8_ = new PartnerHintText())._tfText.text = Database.getInstance().translateAttrib(_loc7_[_loc4_]);
  306.             addChildAt(_loc8_,getChildIndex(_loc3_));
  307.             _loc8_.mouseEnabled = false;
  308.             _loc8_.alpha = 0;
  309.             _loc8_.x = Math.floor(_loc3_.x);
  310.             _loc8_.y = _loc3_.y - 100;
  311.             tweenHint(_loc8_,_loc5_);
  312.             _loc5_ -= _loc3_.height;
  313.             _loc4_++;
  314.          }
  315.       }
  316.       
  317.       protected function getButtonForModel(param1:Model) : SimpleButton
  318.       {
  319.          var _loc2_:String = null;
  320.          var _loc3_:String = null;
  321.          var _loc4_:String = null;
  322.          _loc2_ = param1.name;
  323.          _loc3_ = _loc2_.substr(_loc2_.length - 1,1);
  324.          _loc4_ = "_bModelOK" + _loc3_;
  325.          return getChildByName(_loc4_) as SimpleButton;
  326.       }
  327.       
  328.       protected function onHints(param1:MouseEvent) : void
  329.       {
  330.          showHints((_dressupengine.ActiveModel as DressupModel).ModelTheme);
  331.       }
  332.       
  333.       protected function showPowerups() : void
  334.       {
  335.          var _loc1_:PowerupSlot = null;
  336.          var _loc2_:int = 0;
  337.          var _loc3_:Powerup = null;
  338.          for each(_loc1_ in _apowerupslots)
  339.          {
  340.             _loc1_.removePowerup();
  341.          }
  342.          _loc2_ = 0;
  343.          for each(_loc3_ in _dressuplevelinfo.PowerUps)
  344.          {
  345.             _loc3_.mouseEnabled = true;
  346.             _apowerupslots[_loc2_++].attachPowerup(_loc3_);
  347.          }
  348.       }
  349.       
  350.       public function onCheatShuffle(param1:MouseEvent) : void
  351.       {
  352.          fillSlots(true);
  353.       }
  354.       
  355.       internal function Scoreover(param1:MouseEvent) : void
  356.       {
  357.       }
  358.       
  359.       override public function onFocus() : void
  360.       {
  361.          super.onFocus();
  362.          showPowerups();
  363.          if(_iNumHintsPresented < _dressuplevelinfo.UniqueThemes.length)
  364.          {
  365.             showHints(_dressuplevelinfo.UniqueThemes[_iNumHintsPresented]);
  366.             ++_iNumHintsPresented;
  367.          }
  368.          else if((Profile.CurrentProfile.TutorialMask & Profile.kTutorial_DressupMask) == 0)
  369.          {
  370.             if(_mcTutorial == null)
  371.             {
  372.                setTutorial(new MCTutorialDressup());
  373.                addSkipButton().addEventListener(MouseEvent.CLICK,onSkipTutorial,false,0,true);
  374.             }
  375.             else
  376.             {
  377.                gotoNextTutorialFrame();
  378.             }
  379.          }
  380.          showPoseLineup();
  381.          if(_dressuplevelinfo.TotalFigures > _dressuplevelinfo.FiguresLeft)
  382.          {
  383.             _tfOutfitsLeft.alpha = 0.5;
  384.             _tfOutfitsLeft.text = "Outfits Left: " + _dressuplevelinfo.FiguresLeft;
  385.             Tweener.addTween(_tfOutfitsLeft,{
  386.                "alpha":1,
  387.                "delay":0.5,
  388.                "time":2,
  389.                "onComplete":startFadeText
  390.             });
  391.          }
  392.          doPowerupTutorials();
  393.       }
  394.       
  395.       protected function onModelPartChanged(param1:ModelEvent) : void
  396.       {
  397.          var _loc2_:DressupModel = null;
  398.          gotoNextTutorialFrame();
  399.          for each(_loc2_ in _aModels)
  400.          {
  401.             if(_loc2_.visible && _loc2_.OKButton != null)
  402.             {
  403.                _loc2_.OKButton.visible = _loc2_.isDressed();
  404.             }
  405.          }
  406.       }
  407.       
  408.       protected function startLevelPoseGlow() : *
  409.       {
  410.          var _loc1_:Array = null;
  411.          var _loc2_:MovieClip = null;
  412.          _loc1_ = [_mcPose0,_mcPose1,_mcPose2];
  413.          _loc2_ = _loc1_[_dressuplevelinfo.LevelPoses.length - 1];
  414.          Tweener.removeTweens(_loc2_);
  415.          Tweener.addTween(_loc2_,{
  416.             "_tintBrightness":0.5,
  417.             "time":0.25,
  418.             "onComplete":startLevelPoseUnglow
  419.          });
  420.       }
  421.       
  422.       public function showPoseLineup() : *
  423.       {
  424.          var _loc1_:int = 0;
  425.          var _loc2_:String = null;
  426.          var _loc3_:MovieClip = null;
  427.          while(!validatePoseLineup())
  428.          {
  429.             _dressuplevelinfo.LevelPoses.pop();
  430.          }
  431.          _loc1_ = 0;
  432.          while(_loc1_ < 3)
  433.          {
  434.             _loc2_ = "_mcPose" + _loc1_;
  435.             _loc3_ = getChildByName(_loc2_) as MovieClip;
  436.             if(_loc1_ < _dressuplevelinfo.LevelPoses.length)
  437.             {
  438.                _loc3_.visible = true;
  439.                _loc3_.gotoAndStop(_dressuplevelinfo.LevelPoses[_loc1_]);
  440.                Tweener.removeTweens(_loc3_);
  441.                _loc3_.transform.colorTransform = new ColorTransform();
  442.             }
  443.             else
  444.             {
  445.                _loc3_.visible = false;
  446.             }
  447.             _loc1_++;
  448.          }
  449.          if(_dressuplevelinfo.LevelPoses.length > 0)
  450.          {
  451.             startLevelPoseGlow();
  452.          }
  453.       }
  454.       
  455.       protected function startFadeText() : void
  456.       {
  457.          Tweener.addTween(_tfOutfitsLeft,{
  458.             "alpha":0,
  459.             "delay":0.5,
  460.             "time":1
  461.          });
  462.       }
  463.       
  464.       protected function onFocusOut(param1:Event) : void
  465.       {
  466.          if(BaseForm.getCurrentForm() is DressupForm)
  467.          {
  468.             setForm(new PauseForm());
  469.          }
  470.       }
  471.       
  472.       protected function hidePoseLineup() : *
  473.       {
  474.          var _loc1_:int = 0;
  475.          var _loc2_:String = null;
  476.          var _loc3_:MovieClip = null;
  477.          _loc1_ = 0;
  478.          while(_loc1_ < 3)
  479.          {
  480.             _loc2_ = "_mcPose" + _loc1_;
  481.             _loc3_ = getChildByName(_loc2_) as MovieClip;
  482.             _loc3_.visible = false;
  483.             _loc1_++;
  484.          }
  485.       }
  486.       
  487.       protected function setModelBackground(param1:Bitmap) : void
  488.       {
  489.          while(_mcModelBackground.numChildren > 0)
  490.          {
  491.             _mcModelBackground.removeChildAt(0);
  492.          }
  493.          _mcModelBackground.addChild(param1);
  494.       }
  495.       
  496.       protected function OnHideExit(param1:MouseEvent) : void
  497.       {
  498.          _yesno_mc.visible = false;
  499.       }
  500.       
  501.       protected function onSubmitModel(param1:MouseEvent) : void
  502.       {
  503.          var _loc2_:DressupResultForm = null;
  504.          var _loc3_:DressupModel = null;
  505.          _loc2_ = new DressupResultForm();
  506.          if(param1 != null)
  507.          {
  508.             SoundManager.getInstance().playSound("AcceptOutfitSound");
  509.             for each(_loc3_ in _aModels)
  510.             {
  511.                if(_loc3_.OKButton == param1.target)
  512.                {
  513.                   _dressupmodelSubmitted = _loc3_;
  514.                   break;
  515.                }
  516.             }
  517.          }
  518.          setForm(_loc2_);
  519.          _loc2_.init(_dressuplevelinfo,_dressupmodelSubmitted,_dressupmodelSubmitted.ModelTheme);
  520.          --_dressuplevelinfo.FiguresLeft;
  521.          if(_dressuplevelinfo.FiguresLeft > 0)
  522.          {
  523.             if(getNumVisibleModels() > _dressuplevelinfo.FiguresLeft)
  524.             {
  525.                _dressupmodelSubmitted.hide();
  526.             }
  527.          }
  528.       }
  529.       
  530.       public function fillSlots(param1:Boolean = false, param2:String = null) : void
  531.       {
  532.          var _loc3_:int = 0;
  533.          var _loc4_:ClothingSlot = null;
  534.          var _loc5_:Array = null;
  535.          var _loc6_:Array = null;
  536.          var _loc7_:Array = null;
  537.          var _loc8_:PartTemplate = null;
  538.          var _loc9_:Part = null;
  539.          var _loc10_:int = 0;
  540.          var _loc11_:DisplayObject = null;
  541.          var _loc12_:Boolean = false;
  542.          var _loc13_:PartTemplate = null;
  543.          var _loc14_:Boolean = false;
  544.          for each(param2 in ["top","bottom","shoe","accessory"])
  545.          {
  546.             _loc5_ = new Array();
  547.             _loc3_ = 0;
  548.             while(_loc3_ < this.numChildren)
  549.             {
  550.                if((_loc11_ = getChildAt(_loc3_)) is ClothingSlot && _loc11_.name.indexOf(param2) > -1)
  551.                {
  552.                   _loc4_ = _loc11_ as ClothingSlot;
  553.                   _loc5_.push(_loc11_);
  554.                }
  555.                _loc3_++;
  556.             }
  557.             if(param2 == "accessory")
  558.             {
  559.                _loc7_ = _dressuplevelinfo.getNextAccessories();
  560.             }
  561.             else
  562.             {
  563.                _loc7_ = _dressuplevelinfo.Package.getMultipleRandomTemplates(param2,_loc5_.length);
  564.             }
  565.             _loc6_ = new Array();
  566.             for each(_loc13_ in _loc7_)
  567.             {
  568.                _loc12_ = false;
  569.                for each(_loc4_ in _aSlots)
  570.                {
  571.                   if(_loc4_.hasPart())
  572.                   {
  573.                      if(_loc4_.getPart().Template.Name == _loc13_.Name)
  574.                      {
  575.                         _loc12_ = true;
  576.                         break;
  577.                      }
  578.                   }
  579.                }
  580.                if(!_loc12_)
  581.                {
  582.                   _loc6_.push(_loc13_);
  583.                }
  584.             }
  585.             for each(_loc4_ in _loc5_)
  586.             {
  587.                if(_loc6_.length > 0)
  588.                {
  589.                   _loc14_ = false;
  590.                   if(_loc4_.hasPart() && param1 || !_loc4_.hasPart() && !param1)
  591.                   {
  592.                      if(param2 == null)
  593.                      {
  594.                         _loc14_ = true;
  595.                      }
  596.                      else if(_loc4_.name.indexOf(param2) >= 0)
  597.                      {
  598.                         _loc14_ = true;
  599.                      }
  600.                   }
  601.                   if(_loc14_)
  602.                   {
  603.                      if((_loc8_ = _loc6_.pop() as PartTemplate) != null)
  604.                      {
  605.                         _loc4_.clean();
  606.                         (_loc9_ = _loc8_.createPart()).center();
  607.                         _loc4_.addChild(_loc9_);
  608.                         _loc4_.slideIn();
  609.                      }
  610.                   }
  611.                }
  612.             }
  613.          }
  614.       }
  615.       
  616.       protected function onEnterFrame(param1:Event) : void
  617.       {
  618.          var _loc2_:Boolean = false;
  619.          var _loc3_:DressupModel = null;
  620.          var _loc4_:DressupModel = null;
  621.          var _loc5_:Number = NaN;
  622.          _loc4_ = null;
  623.          for each(_loc3_ in _aModels)
  624.          {
  625.             if(_loc3_.visible)
  626.             {
  627.                _loc5_ = _loc3_.ModelTimer.getTimeMillis();
  628.                _loc2_ = _loc3_.ModelTimer.updateTime(isActiveForm() && _mcTutorial == null && _dressupmodelSubmitted == null);
  629.                _loc2_ = _loc2_;
  630.                _loc3_.ModelTimerBar.setRatio(_loc3_.ModelTimer.getRatio());
  631.                if(_loc2_)
  632.                {
  633.                   _loc4_ = _loc3_;
  634.                }
  635.                else if(_loc5_ > TIMER_WARNING_MILLIS && _loc3_.ModelTimer.getTimeMillis() < TIMER_WARNING_MILLIS)
  636.                {
  637.                   dropHint(_loc3_);
  638.                }
  639.             }
  640.          }
  641.          if(_loc4_ != null)
  642.          {
  643.             _dressupmodelSubmitted = _loc4_;
  644.             onSubmitModel(new MouseEvent(""));
  645.          }
  646.       }
  647.       
  648.       internal function onKeyDown(param1:KeyboardEvent) : void
  649.       {
  650.          if(param1.keyCode == 27)
  651.          {
  652.             onPause(new MouseEvent(""));
  653.          }
  654.       }
  655.       
  656.       protected function getActiveModel() : Model
  657.       {
  658.          return _dressupengine.ActiveModel;
  659.       }
  660.       
  661.       protected function OnShowExit(param1:MouseEvent) : void
  662.       {
  663.          _yesno_mc.visible = true;
  664.          if((Profile.CurrentProfile.TutorialMask & Profile.kTutorial_MapPress) == 0)
  665.          {
  666.             setTutorial(new MCTutorialExittoMap());
  667.             Profile.CurrentProfile.TutorialMask |= Profile.kTutorial_MapPress;
  668.             Storage.getInstance().saveProfiles();
  669.          }
  670.       }
  671.       
  672.       protected function getNextActiveModel() : Model
  673.       {
  674.          var _loc1_:Model = null;
  675.          for each(_loc1_ in _aModels)
  676.          {
  677.             if(_loc1_ != _dressupengine.ActiveModel && _loc1_.visible)
  678.             {
  679.                return _loc1_;
  680.             }
  681.          }
  682.          return null;
  683.       }
  684.       
  685.       internal function onPickupClothes(param1:Event) : void
  686.       {
  687.          gotoNextTutorialFrame();
  688.       }
  689.       
  690.       override public function onUnfocus() : void
  691.       {
  692.          if(_dressupengine != null)
  693.          {
  694.             _dressupengine.stopVoiceOver();
  695.          }
  696.          super.onUnfocus();
  697.       }
  698.       
  699.       protected function showBoyfriendLineup() : *
  700.       {
  701.          var _loc1_:int = 0;
  702.          var _loc2_:String = null;
  703.          var _loc3_:MovieClip = null;
  704.          var _loc4_:int = 0;
  705.          _loc1_ = 0;
  706.          while(_loc1_ < 3)
  707.          {
  708.             _loc2_ = "_mcBoyfriend" + _loc1_;
  709.             _loc3_ = getChildByName(_loc2_) as MovieClip;
  710.             _loc3_.visible = true;
  711.             _loc4_ = Math.random() * 4 + 1;
  712.             _loc3_.gotoAndStop(_loc4_);
  713.             _loc1_++;
  714.          }
  715.       }
  716.       
  717.       protected function onRemovedFromStage(param1:Event) : void
  718.       {
  719.          if(_stage != null)
  720.          {
  721.             _stage.removeEventListener(KeyboardEvent.KEY_DOWN,onKeyDown,false);
  722.          }
  723.       }
  724.       
  725.       internal function onDropClothes(param1:Event) : void
  726.       {
  727.       }
  728.       
  729.       protected function getNumVisibleModels() : int
  730.       {
  731.          var _loc1_:int = 0;
  732.          var _loc2_:Model = null;
  733.          _loc1_ = 0;
  734.          for each(_loc2_ in _aModels)
  735.          {
  736.             if(_loc2_.visible)
  737.             {
  738.                _loc1_++;
  739.             }
  740.          }
  741.          return _loc1_;
  742.       }
  743.       
  744.       protected function adjustRankDiamonds() : void
  745.       {
  746.       }
  747.       
  748.       protected function getModelForButton(param1:SimpleButton) : Model
  749.       {
  750.          var _loc2_:String = null;
  751.          var _loc3_:String = null;
  752.          var _loc4_:String = null;
  753.          _loc2_ = param1.name;
  754.          _loc3_ = _loc2_.substr(_loc2_.length - 1,1);
  755.          _loc4_ = "_model" + _loc3_;
  756.          return getChildByName(_loc4_) as Model;
  757.       }
  758.       
  759.       protected function validatePoseLineup() : Boolean
  760.       {
  761.          if(_dressuplevelinfo.LevelPoses.length <= 0)
  762.          {
  763.             return true;
  764.          }
  765.          if(_dressuplevelinfo.LevelPoses.length == 1 && _model2.visible)
  766.          {
  767.             return true;
  768.          }
  769.          if(_dressuplevelinfo.LevelPoses.length == 2 && _model0.visible)
  770.          {
  771.             return true;
  772.          }
  773.          if(_dressuplevelinfo.LevelPoses.length == 3 && _model1.visible)
  774.          {
  775.             return true;
  776.          }
  777.          return false;
  778.       }
  779.       
  780.       public function onCheatTime(param1:MouseEvent) : void
  781.       {
  782.          var _loc2_:DressupModel = null;
  783.          for each(_loc2_ in _aModels)
  784.          {
  785.             dropHint(_loc2_);
  786.          }
  787.          this.addTime(3000000);
  788.       }
  789.       
  790.       public function addTime(param1:int) : void
  791.       {
  792.          var _loc2_:DressupModel = null;
  793.          for each(_loc2_ in _aModels)
  794.          {
  795.             _loc2_.ModelTimer.addTime(param1);
  796.          }
  797.       }
  798.       
  799.       protected function onPose(param1:MouseEvent) : void
  800.       {
  801.          var _loc2_:DressupModel = null;
  802.          for each(_loc2_ in _aModels)
  803.          {
  804.             if(_loc2_.PoseButton == param1.target)
  805.             {
  806.                gotoNextTutorialFrame();
  807.                _loc2_.setPose(ModelPose.getNextPose(_loc2_.getPose()));
  808.                SoundManager.getInstance().playSound("ChangePoseSound");
  809.             }
  810.          }
  811.       }
  812.       
  813.       protected function reset() : void
  814.       {
  815.          var _loc1_:int = 0;
  816.          var _loc2_:PartTemplate = null;
  817.          var _loc3_:DressupModel = null;
  818.          var _loc4_:Boolean = false;
  819.          var _loc5_:String = null;
  820.          var _loc6_:int = 0;
  821.          var _loc7_:ClothingSlot = null;
  822.          var _loc8_:Part = null;
  823.          var _loc9_:Array = null;
  824.          if(_bFirstFillSlots)
  825.          {
  826.             fillSlots();
  827.             _bFirstFillSlots = false;
  828.          }
  829.          _loc3_ = _dressupmodelSubmitted;
  830.          _dressupmodelSubmitted = null;
  831.          if(_loc3_ != null)
  832.          {
  833.             _loc3_.ModelTimer.reset(_dressuplevelinfo.MillisecondsAllowed);
  834.             _loc3_.ModelTimerBar.setRatio(1);
  835.             for each(_loc5_ in ["top","bottom","shoe","accessory"])
  836.             {
  837.                _loc8_ = _loc3_.removePart(_loc5_);
  838.                if(_loc5_ == "accessory")
  839.                {
  840.                   if((_loc9_ = _dressuplevelinfo.getNextAccessories()).length > 0)
  841.                   {
  842.                      _loc2_ = _loc9_.pop() as PartTemplate;
  843.                      _loc8_ = _loc2_.createPart();
  844.                      (_loc7_ = _dressupengine.reslotPart(_loc8_)).slideIn();
  845.                   }
  846.                }
  847.                else if(_loc8_ != null)
  848.                {
  849.                   _loc4_ = true;
  850.                   while(_loc4_)
  851.                   {
  852.                      _loc4_ = false;
  853.                      _loc2_ = _dressuplevelinfo.Package.getRandomTemplate(_loc5_);
  854.                      for each(_loc7_ in _aSlots)
  855.                      {
  856.                         if(_loc7_.hasPart())
  857.                         {
  858.                            if(_loc7_.getPart().Template.Name == _loc2_.Name)
  859.                            {
  860.                               _loc4_ = true;
  861.                               break;
  862.                            }
  863.                         }
  864.                      }
  865.                   }
  866.                   _loc8_ = _loc2_.createPart();
  867.                   (_loc7_ = _dressupengine.reslotPart(_loc8_)).slideIn();
  868.                }
  869.             }
  870.             _loc3_.undress();
  871.             _loc3_.setPose(ModelPose.getRandomPose());
  872.             _loc3_.ModelTheme = _dressuplevelinfo.getRandomTheme();
  873.             _loc3_.addPart(MainDocument.Package.getTemplateByName(_loc3_.ModelTheme.ThemePartner.TargetModel).createPart());
  874.             _loc3_.addPart(MainDocument.Package.getRandomTemplate("bra").createPart());
  875.          }
  876.          _loc6_ = 4;
  877.          _tfLevelName.text = _dressuplevelinfo.LevelName;
  878.          setModelBackground(MainDocument.BackgroundPackage.Images[_loc6_]);
  879.       }
  880.       
  881.       protected function onThemeOver(param1:MouseEvent) : void
  882.       {
  883.          var _loc2_:TimerBarSmall = null;
  884.          _loc2_ = param1.target as TimerBarSmall;
  885.          _loc2_.filters = _aFiltersTimerOver;
  886.       }
  887.       
  888.       public function onFinishRound(param1:MouseEvent) : void
  889.       {
  890.          var _loc2_:LevelClearedForm = null;
  891.          _loc2_ = new LevelClearedForm();
  892.          setFormPermanent(_loc2_);
  893.          _loc2_.init(_dressuplevelinfo);
  894.       }
  895.       
  896.       protected function onPause(param1:MouseEvent) : void
  897.       {
  898.          setForm(new OptionsForm());
  899.       }
  900.       
  901.       protected function adjustScoreRatio() : void
  902.       {
  903.          var _loc1_:Number = NaN;
  904.          _loc1_ = _dressuplevelinfo.CurrentScore / _dressuplevelinfo.LevelMinScore;
  905.          if(_loc1_ >= 1)
  906.          {
  907.             _loc1_ = 1;
  908.          }
  909.       }
  910.       
  911.       internal function tweenHint(param1:PartnerHintText, param2:Number) : *
  912.       {
  913.          var nTime:Number = NaN;
  914.          var pht:PartnerHintText = param1;
  915.          var nY:Number = param2;
  916.          nY = Math.floor(nY);
  917.          nTime = 0.5 + Math.random() * 1;
  918.          Tweener.addTween(pht,{
  919.             "alpha":1,
  920.             "time":0.5
  921.          });
  922.          Tweener.addTween(pht,{
  923.             "y":nY,
  924.             "transition":"easeOutBounce",
  925.             "time":nTime
  926.          });
  927.          Tweener.addTween(pht,{
  928.             "alpha":0,
  929.             "delay":nTime + 5,
  930.             "time":2,
  931.             "onComplete":function():*
  932.             {
  933.                pht.parent.removeChild(pht);
  934.             }
  935.          });
  936.       }
  937.       
  938.       protected function onPowerupClicked(param1:MouseEvent) : void
  939.       {
  940.          var _loc2_:PowerupSlot = null;
  941.          var _loc3_:Powerup = null;
  942.          _loc2_ = param1.currentTarget as PowerupSlot;
  943.          _loc3_ = _loc2_.AttachedPowerup;
  944.          if(_loc3_ != null)
  945.          {
  946.             _loc3_.activate(_aSlots,_aModels,this,_dressuplevelinfo);
  947.             _loc2_.removePowerup();
  948.             _dressuplevelinfo.updatePowerups();
  949.          }
  950.       }
  951.       
  952.       protected function onAddedToStage(param1:Event) : void
  953.       {
  954.          var _loc2_:int = 0;
  955.          var _loc3_:LevelClearedForm = null;
  956.          var _loc4_:LevelFailForm = null;
  957.          _loc2_ = _dressuplevelinfo.TotalFigures - _dressuplevelinfo.FiguresLeft;
  958.          _tfScore.text = _dressuplevelinfo.CurrentScore.toString();
  959.          _tfFiguresLeft.text = _loc2_.toString();
  960.          reset();
  961.          if(_dressuplevelinfo.FiguresLeft == 0)
  962.          {
  963.             if(_dressuplevelinfo.LevelName == "Tutorial" && Profile.CurrentProfile.SkipTutorial)
  964.             {
  965.                Profile.CurrentProfile.SkipTutorial = false;
  966.                onSkipTutorial(new MouseEvent(""));
  967.             }
  968.             else if(_dressuplevelinfo.CurrentTotalLetterGrade / _dressuplevelinfo.TotalFigures > 72)
  969.             {
  970.                Profile.CurrentProfile.setGradeAndScoreForLevel(_dressuplevelinfo.LevelName,_dressuplevelinfo.CurrentScore,DressupResultForm.getLetterGrade(_dressuplevelinfo.CurrentTotalLetterGrade / _dressuplevelinfo.TotalFigures));
  971.                _loc3_ = new LevelClearedForm();
  972.                _loc3_.init(_dressuplevelinfo);
  973.                setFormPermanent(_loc3_);
  974.                bChangeMusic = false;
  975.             }
  976.             else
  977.             {
  978.                (_loc4_ = new LevelFailForm()).init(_dressuplevelinfo);
  979.                setFormPermanent(_loc4_);
  980.             }
  981.          }
  982.          _stage = stage;
  983.          if(_stage != null)
  984.          {
  985.             _stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown,false,0,true);
  986.          }
  987.       }
  988.       
  989.       protected function onSkipTutorial(param1:MouseEvent) : void
  990.       {
  991.          var _loc2_:Level = null;
  992.          var _loc3_:Level = null;
  993.          var _loc4_:BaseForm = null;
  994.          _loc2_ = Database.getInstance().getLevel(_dressuplevelinfo.LevelName);
  995.          _loc3_ = Database.getInstance().getLevel(_loc2_.Next);
  996.          if(Profile.CurrentProfile.MapPressTutorial)
  997.          {
  998.             Profile.CurrentProfile.MapPressTutorial = false;
  999.             Profile.CurrentProfile.unlockLevel(_loc3_.Name);
  1000.             Profile.CurrentProfile.TutorialMask |= Profile.kTutorial_DressupMask;
  1001.             exitForm();
  1002.          }
  1003.          else
  1004.          {
  1005.             Profile.CurrentProfile.unlockLevel(_loc2_.Next);
  1006.             Profile.CurrentProfile.TutorialMask |= Profile.kTutorial_DressupMask;
  1007.             _loc4_ = MapForm.getLevelForm(_loc3_.Name);
  1008.             setFormPermanent(_loc4_);
  1009.          }
  1010.          clearTutorial();
  1011.       }
  1012.       
  1013.       protected function startLevelPoseUnglow() : *
  1014.       {
  1015.          var _loc1_:Array = null;
  1016.          var _loc2_:MovieClip = null;
  1017.          _loc1_ = [_mcPose0,_mcPose1,_mcPose2];
  1018.          _loc2_ = _loc1_[_dressuplevelinfo.LevelPoses.length - 1];
  1019.          Tweener.removeTweens(_loc2_);
  1020.          Tweener.addTween(_loc2_,{
  1021.             "_tintBrightness":0,
  1022.             "time":0.25,
  1023.             "onComplete":startLevelPoseGlow
  1024.          });
  1025.       }
  1026.       
  1027.       protected function onThemeClicked(param1:MouseEvent) : void
  1028.       {
  1029.          var _loc2_:DressupModel = null;
  1030.          var _loc3_:TipsForm = null;
  1031.          for each(_loc2_ in _aModels)
  1032.          {
  1033.             if(_loc2_.ModelTimerBar == param1.target)
  1034.             {
  1035.                _loc3_ = new TipsForm();
  1036.                if(_mcTutorial != null)
  1037.                {
  1038.                   _loc3_.TutorialStartFrame = _mcTutorial.TargetFrame;
  1039.                }
  1040.                _loc3_.init(_dressuplevelinfo,_loc2_.ModelTheme);
  1041.                setForm(_loc3_,true);
  1042.             }
  1043.          }
  1044.       }
  1045.       
  1046.       public function init(param1:DressupLevelInfo) : void
  1047.       {
  1048.          var _loc2_:int = 0;
  1049.          var _loc3_:DressupModel = null;
  1050.          _loc2_ = 0;
  1051.          _dressuplevelinfo = param1;
  1052.          _tfTotalOutfits.text = _dressuplevelinfo.TotalFigures.toString();
  1053.          Music = _dressuplevelinfo.LevelMusic;
  1054.          Storage.getInstance().playBGM(Music);
  1055.          param1.StartTime = getTimer();
  1056.          for each(_loc3_ in _aModels)
  1057.          {
  1058.             _loc3_.ModelTheme = _dressuplevelinfo.getRandomTheme();
  1059.             if(_loc3_.ModelTheme.ThemePartner != null)
  1060.             {
  1061.                trace("ModelTheme " + _loc3_.ModelTheme.ThemePartner.Name);
  1062.             }
  1063.             else
  1064.             {
  1065.                trace("No Partner");
  1066.             }
  1067.             _loc3_.ModelTimer.reset(_dressuplevelinfo.MillisecondsAllowed);
  1068.             _loc3_.setPose(ModelPose.getRandomPose());
  1069.             _loc3_.undress();
  1070.             _loc3_.addPart(MainDocument.Package.getTemplateByName(_loc3_.ModelTheme.ThemePartner.TargetModel).createPart());
  1071.             _loc3_.addPart(MainDocument.Package.getRandomTemplate("bra").createPart());
  1072.          }
  1073.          setupSlots();
  1074.          _dressupengine = new DressupEngine(this,_aSlots,_aModels);
  1075.          _dressupengine.addEventListener(DressupEngine.DressupEnginePickup,onPickupClothes,false,0,true);
  1076.          _dressupengine.addEventListener(DressupEngine.DressupEngineDrop,onDropClothes,false,0,true);
  1077.          _dressupengine.deactivateAllModels();
  1078.          switch(_dressuplevelinfo.NumModels)
  1079.          {
  1080.             case 1:
  1081.                _aModels[1].hide();
  1082.                _aModels[2].hide();
  1083.                _aModels[0].Active = true;
  1084.                _dressupengine.ActiveModel = _aModels[0];
  1085.                break;
  1086.             case 2:
  1087.                _aModels[0].hide();
  1088.                _aModels[1].Active = true;
  1089.                _dressupengine.ActiveModel = _aModels[1];
  1090.                break;
  1091.             case 3:
  1092.                _aModels[0].Active = true;
  1093.                _dressupengine.ActiveModel = _aModels[0];
  1094.                break;
  1095.             default:
  1096.                trace("Wrong number of models specified (<1 or >3): " + _dressuplevelinfo.NumModels);
  1097.          }
  1098.          showPoseLineup();
  1099.          hideBoyfriendLineup();
  1100.       }
  1101.       
  1102.       protected function showHints(param1:DressupTheme) : *
  1103.       {
  1104.          var _loc2_:TipsForm = null;
  1105.          _loc2_ = new TipsForm();
  1106.          _loc2_.init(_dressuplevelinfo,param1);
  1107.          setForm(_loc2_,true);
  1108.       }
  1109.       
  1110.       protected function doPowerupTutorials() : void
  1111.       {
  1112.          var _loc1_:Powerup = null;
  1113.          if(_mcTutorial == null)
  1114.          {
  1115.             for each(_loc1_ in _dressuplevelinfo.PowerUps)
  1116.             {
  1117.                if(_loc1_ is PowerupReshuffle && (Profile.CurrentProfile.TutorialMask & Profile.kTutorial_PowerupUpReshuffle) == 0)
  1118.                {
  1119.                   setTutorial(new MCTutorialPowerupReshuffle());
  1120.                   Profile.CurrentProfile.TutorialMask |= Profile.kTutorial_PowerupUpReshuffle;
  1121.                }
  1122.                else if(_loc1_ is PowerupAddTime && (Profile.CurrentProfile.TutorialMask & Profile.kTutorial_PowerupUpAddTime) == 0)
  1123.                {
  1124.                   setTutorial(new MCTutorialPowerupAddTime());
  1125.                   Profile.CurrentProfile.TutorialMask |= Profile.kTutorial_PowerupUpAddTime;
  1126.                }
  1127.                else if(_loc1_ is PowerupPoseLineup && (Profile.CurrentProfile.TutorialMask & Profile.kTutorial_PowerupUpPoseLineup) == 0)
  1128.                {
  1129.                   setTutorial(new MCTutorialPowerupPoseLineup());
  1130.                   Profile.CurrentProfile.TutorialMask |= Profile.kTutorial_PowerupUpPoseLineup;
  1131.                }
  1132.                else if(_loc1_ is PowerupDoubleDamage && (Profile.CurrentProfile.TutorialMask & Profile.kTutorial_PowerupUpDoubleDamage) == 0)
  1133.                {
  1134.                   setTutorial(new MCTutorialPowerupDoubleDamage());
  1135.                   Profile.CurrentProfile.TutorialMask |= Profile.kTutorial_PowerupUpDoubleDamage;
  1136.                }
  1137.             }
  1138.          }
  1139.       }
  1140.       
  1141.       protected function setupSlots() : void
  1142.       {
  1143.          var _loc1_:int = 0;
  1144.          var _loc2_:ClothingSlot = null;
  1145.          _aSlots = new Array();
  1146.          _loc1_ = 0;
  1147.          while(_loc1_ < this.numChildren)
  1148.          {
  1149.             if(getChildAt(_loc1_) is ClothingSlot)
  1150.             {
  1151.                _loc2_ = getChildAt(_loc1_) as ClothingSlot;
  1152.                _loc2_.setHiddenAndClickable();
  1153.                _loc2_.clean();
  1154.                _aSlots.push(_loc2_);
  1155.             }
  1156.             _loc1_++;
  1157.          }
  1158.          _aSlots = _aSlots.sortOn("name");
  1159.       }
  1160.       
  1161.       protected function onMenu(param1:MouseEvent) : void
  1162.       {
  1163.          exitForm();
  1164.       }
  1165.       
  1166.       internal function Scoreout(param1:MouseEvent) : void
  1167.       {
  1168.       }
  1169.       
  1170.       protected function hideBoyfriendLineup() : *
  1171.       {
  1172.          var _loc1_:int = 0;
  1173.          var _loc2_:String = null;
  1174.          var _loc3_:MovieClip = null;
  1175.          _loc1_ = 0;
  1176.          while(_loc1_ < 3)
  1177.          {
  1178.             _loc2_ = "_mcBoyfriend" + _loc1_;
  1179.             _loc3_ = getChildByName(_loc2_) as MovieClip;
  1180.             _loc3_.visible = false;
  1181.             _loc1_++;
  1182.          }
  1183.       }
  1184.       
  1185.       protected function onThemeOut(param1:MouseEvent) : void
  1186.       {
  1187.          var _loc2_:TimerBarSmall = null;
  1188.          _loc2_ = param1.target as TimerBarSmall;
  1189.          _loc2_.filters = _aFiltersTimerOut;
  1190.       }
  1191.    }
  1192. }
  1193.